﻿using System;
using System.Collections.Generic;
using TeamsPortal.DataAccess;

namespace TeamsPortal.ServiceClient
{
    public interface IForumsServiceClient
    {
        /// <summary>
		/// Gets a list of ForumCategories with the list forums, dependant of the user role.
		/// </summary>
        List<ForumCategory> GetList(int userId);

		/// <summary>
		/// Get all categories (without the forums in it).
		/// </summary>
        List<ForumCategory> GetCategories();

        Forum Get(string shortName);

        void Add(Forum forum, int userId);

		/// <summary>
		/// Validates if a forum shortname is already taken
		/// </summary>
		/// <exception cref="ArgumentNullException"></exception>
        void SetAvailableShortName(Forum forum);

        void Edit(Forum forum, int userId);

		/// <summary>
		/// Deletes a forum from the system (not a phisical delete).
		/// </summary>
		/// <param name="forum"></param>
		/// <returns></returns>
        bool Delete(string forum);
    }
}
